<?php
namespace Back\Controller;
use Think\Controller;
use Think\Page;

/**
 * 品牌管理控制器
 * @package Back\Controller
 */
class GalleryController extends Controller
{
    /**
     * 批量处理
     */
    public function multiAction()
    {
        $operate = 'delete'; // 默认的动作
        // 判断是否传递了selected中
        $selected = I('post.selected', []);
        if (empty($selected)) {
            // 没有任何的主键值
            // 不需要完成操作
            $operate = '';
        }
        // 有可用的主键值
        // 判断当前的操作类型
        switch ($operate) {
            case 'delete':
                // in条件删除即可
                M('Gallery')->where(['gallery_id'=>['in', $selected]])->delete();
                break;
        }
        $this->redirect('list');
    }

    /**
     * 设置, 添加修改
     */
    public function setAction()
    {

        if (IS_POST) {
            // 获取PK, 核心判断依据
            $gallery_id = I('post.gallery_id', '');
            // 获取模型
            $model = D('Gallery');
            // 创建数据, 触发 验证, 填充
            if ($model->create()) {
                // 如果创建成功, 则插入或更新数据
                if ($gallery_id === '') {
                    // 添加
                    $model->add();
                } else {
                    $model->save();
                }
                // 成功, 回到列表
                $this->redirect('list');
            } else {
                // 错误信息与出错的数据,记录在session中
                session('message', $model->getError());
                session('data', I('post.'));
                // 重定向
                $param = [];
                if($gallery_id !== '') {
                    $param['gallery_id'] = $gallery_id;
                }
                $this->redirect('set', $param);
            }

        } else {
            // 获取gallery_id, 核心判断依据
            $gallery_id = I('get.gallery_id', '');
            // 获取消息
            $message = session('message');
            // 不需要了, 立即删除
            session('message', null);
            // 分配到模板
            $this->assign('message',  $message ? $message : []);

            // 原始错误数据
            $data = session('data');
            session('data', null);
            // 如果session中的出错数据存在, 则不需要通过gallery_id
            // 在数据表中查询
            if ($gallery_id && !$data) {
                // 根据ID获取数据
                $data = M('Gallery')->find($gallery_id);
            }
            $this->assign('data', $data ? $data : []);

            // 显示编辑页面
            $this->display();
        }

    }
    /**
     * 列表
     */
    public function listAction()
    {
        $model = M('Gallery');

        // 条件部分
        $cond = []; // 默认条件
        $filter = [];
        // 再次分配到模板
        $this->assign('filter', $filter);


        // 排序部分
        // 判断用户是否传递了 排序, 否则使用默认值(保证每个表都有sort_number)
        $sort['field'] = I('get.field', 'sort_number');
        $sort['type'] = I('get.type', 'asc');
        // 拼凑好的排序字符串
        $order = "`{$sort['field']}` {$sort['type']}";
        // 将当前的排序方式, 分配模板中
        $this->assign('sort', $sort);

        // 分页查询
        // 每页显示的记录数
        $limit = 5;
        // 获取总记录数量
        $total = $model->where($cond)->count();

        // 获取分页Page对象
        $page = new Page($total, $limit);

        // 完成查询
        $rows = $model
                ->where($cond)
                ->order($order)
                ->limit($page->firstRow . ', ' . $limit)
                ->select();
        $this->assign('rows', $rows);

        // 获取翻页的HTML代码
        // 配置显示
        $page->setConfig('header', '显示开始 %PAGE_START% 到 %PAGE_END% 之 %TOTAL_ROW% (总 %TOTAL_PAGE% 页)');
        $page->setConfig('theme', '<div class="col-sm-6 text-left"><ul class="pagination">%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%</ul></div> <div class="col-sm-6 text-right">%HEADER%</div>');
        $page->setConfig('prev', '<');
        $page->setConfig('next', '>');
        $page->setConfig('first', '|<');
        $page->setConfig('last', '>|');

        $page_html = $page->show();
        $this->assign('page_html', $page_html);

        $this->display();
    }




    /**
     * ajax操作
     */
    public function ajaxAction()
    {

    }
}